/** FCKeditor - The text editor for internet
* Copyright (C) 2003-2006 Frederico Caldeira Knabben
*
* Licensed under the terms of the GNU Lesser General Public License:
* 		http:
*
* For further information visit:
* 		http:
*
* "Support Open Source software. What about a donation today?"
*
* File Name: fck_flash.js
* 	Scripts related to the Flash dialog window (see fck_flash.html).
*
* File Authors:
* 		Frederico Caldeira Knabben (fredck@fckeditor.net)
*/

var oEditor		= window.parent.InnerDialogLoaded() ; var FCK			= oEditor.FCK ; var FCKLang		= oEditor.FCKLang ; var FCKConfig	= oEditor.FCKConfig ; 

window.parent.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ; 
if ( FCKConfig.FlashUpload )
window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ; 
if ( !FCKConfig.FlashDlgHideAdvanced )
window.parent.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ; 
function OnDialogTabChange( tabCode )
{ ShowE('divInfo'		, ( tabCode == 'Info' ) ) ; ShowE('divUpload'	, ( tabCode == 'Upload' ) ) ; ShowE('divAdvanced'	, ( tabCode == 'Advanced' ) ) ; }

var oFakeImage = FCK.Selection.GetSelectedElement() ; var oEmbed ; 
if ( oFakeImage )
{ if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )
oEmbed = FCK.GetRealElement( oFakeImage ) ; else
oFakeImage = null ; }

window.onload = function()
{ oEditor.FCKLanguageManager.TranslatePage(document) ; 
LoadSelection() ; 
GetE('tdBrowse').style.display = FCKConfig.FlashBrowser	? '' : 'none' ; 
if ( FCKConfig.FlashUpload )
GetE('frmUpload').action = FCKConfig.FlashUploadURL ; 
window.parent.SetAutoSize( true ) ; 
window.parent.SetOkButton( true ) ; }

function LoadSelection()
{ if ( ! oEmbed ) return ; 
var sUrl = GetAttribute( oEmbed, 'src', '' ) ; 
GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ; GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ; GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ; 
GetE('txtAttId').value		= oEmbed.id ; GetE('chkAutoPlay').checked	= GetAttribute( oEmbed, 'play', 'true' ) == 'true' ; GetE('chkLoop').checked		= GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ; GetE('chkMenu').checked		= GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ; GetE('cmbScale').value		= GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ; 
GetE('txtAttTitle').value		= oEmbed.title ; 
if ( oEditor.FCKBrowserInfo.IsIE )
{ GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ; GetE('txtAttStyle').value = oEmbed.style.cssText ; }
else
{ GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ; GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) ; }

UpdatePreview() ; }

function Ok()
{ if ( GetE('txtUrl').value.length == 0 )
{ window.parent.SetSelectedTab( 'Info' ) ; GetE('txtUrl').focus() ; 
alert( oEditor.FCKLang.DlgAlertUrl ) ; 
return false ; }

if ( !oEmbed )
{ oEmbed		= FCK.EditorDocument.createElement( 'EMBED' ) ; oFakeImage  = null ; }
UpdateEmbed( oEmbed ) ; 
if ( !oFakeImage )
{ oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ; oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ; oFakeImage	= FCK.InsertElementAndGetIt( oFakeImage ) ; }
else
oEditor.FCKUndo.SaveUndoStep() ; 
oEditor.FCKFlashProcessor.RefreshView( oFakeImage, oEmbed ) ; 
return true ; }

function UpdateEmbed( e )
{ SetAttribute( e, 'type'			, 'application/x-shockwave-flash' ) ; SetAttribute( e, 'pluginspage'	, 'http://www.macromedia.com/go/getflashplayer' ) ; 
e.src = GetE('txtUrl').value ; SetAttribute( e, "width" , GetE('txtWidth').value ) ; SetAttribute( e, "height", GetE('txtHeight').value ) ; 

SetAttribute( e, 'id'	, GetE('txtAttId').value ) ; SetAttribute( e, 'scale', GetE('cmbScale').value ) ; 
SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ; SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ; SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ; 
SetAttribute( e, 'title'	, GetE('txtAttTitle').value ) ; 
if ( oEditor.FCKBrowserInfo.IsIE )
{ SetAttribute( e, 'className', GetE('txtAttClasses').value ) ; e.style.cssText = GetE('txtAttStyle').value ; }
else
{ SetAttribute( e, 'class', GetE('txtAttClasses').value ) ; SetAttribute( e, 'style', GetE('txtAttStyle').value ) ; }
}

var ePreview ; 
function SetPreviewElement( previewEl )
{ ePreview = previewEl ; 
if ( GetE('txtUrl').value.length > 0 )
UpdatePreview() ; }

function UpdatePreview()
{ if ( !ePreview )
return ; 
while ( ePreview.firstChild )
ePreview.removeChild( ePreview.firstChild ) ; 
if ( GetE('txtUrl').value.length == 0 )
ePreview.innerHTML = '&nbsp;' ; else
{ var oDoc	= ePreview.ownerDocument || ePreview.document ; var e		= oDoc.createElement( 'EMBED' ) ; 
e.src		= GetE('txtUrl').value ; e.type		= 'application/x-shockwave-flash' ; e.width		= '100%' ; e.height	= '100%' ; 
ePreview.appendChild( e ) ; }
}


function BrowseServer()
{ OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ; }

function SetUrl( url, width, height )
{ GetE('txtUrl').value = url ; 
if ( width )
GetE('txtWidth').value = width ; 
if ( height )
GetE('txtHeight').value = height ; 
UpdatePreview() ; 
window.parent.SetSelectedTab( 'Info' ) ; }

function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
{ switch ( errorNumber )
{ case 0 :
alert( 'Your file has been successfully uploaded' ) ; break ; case 1 :
alert( customMsg ) ; return ; case 101 :
alert( customMsg ) ; break ; case 201 :
alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; break ; case 202 :
alert( 'Invalid file type' ) ; return ; case 203 :
alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ; return ; default :
alert( 'Error on file upload. Error number: ' + errorNumber ) ; return ; }

SetUrl( fileUrl ) ; GetE('frmUpload').reset() ; }

var oUploadAllowedExtRegex	= new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ; var oUploadDeniedExtRegex	= new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ; 
function CheckUpload()
{ var sFile = GetE('txtUploadFile').value ; 
if ( sFile.length == 0 )
{ alert( 'Please select a file to upload' ) ; return false ; }

if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
{ OnUploadCompleted( 202 ) ; return false ; }

return true ; }
